/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ReglasNegocio;
import AccesoDatos.*;
/**
 *
 * @author dani
 */
public class Usuario extends ObjReglaNegocioBase {
    
    private String pseudonimo;
    private String pass;
    private Mandador mandador=null;
    private Gerente gerente=null;
    private String[] telefonos;
    
    public Usuario(Dato pseudonimo) {
        super(pseudonimo);
        this.pseudonimo=this.campo.get(0).getValor();
    }
    
    
    public void setTelefonos(String[] t) {
        this.telefonos=t;
    }
    
    public void setMandador(Mandador m) {
        this.mandador=m;
    }
    
    public void setGerente(Gerente g) {
        this.gerente=g;
    }
    
    public Usuario() {
        super();
    }
    
    public Gerente getGerente() {
        return this.gerente;
    }
    
    
                
    public Mandador getMandador() {
        return this.mandador;
    }
    
    @Override
    protected Boolean asignarCampos() {
        String buscar="select * from usuario";
        buscar+=" where pseudonimo='"+this.pseudonimo+"'";
        
        Vista v=this.conn.crearVista(buscar);
        
        if (v.getNRegistros()>0) {
    
            if(v.getRegistro(0, 3)!=null) {
               long idgerente=(Long)v.getRegistro(0,3); 
               Dato Id=new Dato("id",String.valueOf(idgerente));
               this.gerente=new Gerente(Id);
               
            } 
            
                
                if(v.getRegistro(0, 4)!=null) {
                    long idmandador=(Long)v.getRegistro(0,4); 
                    Dato Id=new Dato("id",String.valueOf(idmandador));
                    this.mandador=new Mandador(Id);
                    

                }
                
            
            return true;
        }
        else
            return false;
            
    }

    public String getPseudonimo() {
        return this.pseudonimo;
    }
    
    public void setPseudonimo(String p) {
        this.pseudonimo=p;
    }
    
    public void setPass(String pass) {
        this.pass=pass;
    }
    
    @Override
    public Boolean Existe() {
        String buscar="select * from usuario where pseudonimo='"+this.pseudonimo+"' " +
                "and contrasenya='"+this.pass+"'";
        Vista v=this.conn.crearVista(buscar);
        
        if (v.getNRegistros()>0) {
            this.asignarCampos();
            return true;
        }
        else
            return false;
    }
    
    @Override
    public int Crear() {
        Dato[] datos=new Dato[3];
        if(this.mandador!=null) {
            this.mandador.Crearlo();            
            datos[0]=new Dato("fkmandador",this.mandador.getId());            
        }
        else {
            this.gerente.Crearlo();
            datos[0]=new Dato("fkgerente",this.gerente.getId());            
        }
        
        datos[1]=new Dato("pseudonimo",this.pseudonimo);
        datos[2]=new Dato("contrasenya","0000");
        
        
        ConMySQL con=new ConMySQL();
        con.Conectar();
        con.Agregar(datos, "usuario");
        Vista v=con.crearVista("select last_insert_id()");
        String id=String.valueOf((Long)v.getRegistro(0, 0));
        

        if (this.telefonos.length>0) {
            for(int i=0;i<this.telefonos.length;i++) {
                String tel=telefonos[i];
                String consulta="insert into telefono(numero,fkusuario) values('"+tel+"','"+id+"')";                
                con.ejecutarActualizacion(consulta);                
            }
        }
        con.Cerrar();
        return 0;
    }
}

